// 面包屑
// 引入

import { Module } from "vuex";
import { Itab } from '../type'
import {RootState} from '../index'

// 定义接口
export interface TabState {
   tabsList:Array<Itab>
}


export const tabState: Module<TabState, RootState> = {
    namespaced: true,
    // 属性
  state: {
    tabsList:[]
  },
  // 方法
  mutations: {
    // 添加 tab
    // tab 传进来的数据
    addTab(state: TabState, tab: Itab) {
      // 判断添加的是否重名
      // 判断 item.path 重名则为true
      const isSome = state.tabsList.some((item) => item.path == tab.path)
      if (!isSome) {
        // 添加
        state.tabsList.push(tab)
      }
    },
    // 移除 tab
    closeTabs(state: TabState, targetName: string) {
      // 找到下标 为 targetName
      const index = state.tabsList.findIndex((item) => item.path == targetName)
      // 通过 splice 移除
      state.tabsList.splice(index,1)
    }
  },
  getters: {
    getAddTab(state:TabState) {
      return state.tabsList
    }
  }
}